M1 Informatique - Python 2023-2024

Les notes de cours et les sujets de TD seront disponibles sur ma page personnelle

http://igm.univ-mlv.fr/~jyt/M1_python/index.html

Introduction

Langage interprété, orienté objet et dynamiquement typé pour

Depuis quelques années, il est régulièrement classé comme le langage le plus populaire.

La version officielle: CPython

Il existe une version en Java: JPython ou Jython

Bref historique

Qui utilise Python ?

Caractéristiques du langage

Types de données

Le code est compact et lisible

Java :

public class Hello {
    public static void main(String[] args) {
        System.out.println("Hello, World!");
    }
}

Python 2 :

print "Hello, World!"

Python 3 :

print ("Hello, World!")

Exemple : QuickSort en deux lignes !

Évidemment, ce n'est pas une implémentation efficace de QuickSort ! Mais ça permet de vérifier que l'algorithme donne un résultat correct.

Le tri est implémenté très efficacement en Python (TimSort - fonction sorted, ou méthode sort qui trie en place):

Premiers pas

Python est un langage interprété, et il est important d'apprendre à l'utiliser comme tel.

L'utilisation la plus basique consite à entrer la commande python dans un terminal. On rentre dans un interpréteur qu'on peut utiliser comme une calculette :

[jyt@scriabine ~]$ python
Python 3.6.1 |Anaconda 4.4.0 (64-bit)| (default, May 11 2017, 13:09:58) 
[GCC 4.4.7 20120313 (Red Hat 4.4.7-1)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> 2**100
1267650600228229401496703205376

On peut aussi écrire des scripts. La première ligne doit être #! suivi du chemin vers l'interpréteur:

[jyt@scriabine jyt]$ cat a.py
#!/usr/bin/python
print (2**100)
[jyt@scriabine ~]$ chmod +x a.py
[jyt@scriabine ~]$ ./a.py
1267650600228229401496703205376

On peut faire exécuter des fichiers

[jyt@scriabine ~]$ cat b.py
print(2**100)
[jyt@scriabine ~]$ python b.py
1267650600228229401496703205376

ou encore, envoyer une commande à l'interpréteur depuis le shell

[jyt@scriabine ~]$ echo "print (2**100)"|python
1267650600228229401496703205376

Avec un langage interprété, on peut tester les instructions une à une avant de les incorporer dans le programme

On aura donc un interpréteur de test dans une fenêtre, et un éditeur (vim, emacs, gedit ...) dans une autre (éviter gedit).

La fonction help(objet) affiche l'aide en ligne d'un objet

On peut accéder à la liste des attributs d'un objet avec la commande dir